import axios from 'axios'
import token from "./config";
import { Message } from "element-ui";
// 创建一个axios实例
const axios_instance = axios.create();

// 设置axios拦截器：请求拦截器
axios_instance.interceptors.request.use(config => {
  config.headers['Authorization'] = 'test '+localStorage.getItem('token');
  return config
}, err => {
  return Promise.reject(err)
});


// 设置axios拦截器: 响应拦截器
axios_instance.interceptors.response.use(res => {
  // 成功响应的拦截
  // Message.success('操作成功');
  return res
}, err =>{
  // 失败响应的拦截
  // console.log(err)
  if(err.response){
    // 失败响应的status需要在response中获得
    console.log(err.response);
    switch(err.response.status){
      // 对得到的状态码的处理，具体的设置视自己的情况而定
      case 401:
        Message.error(err.response.data.msg);
          window.location.href='/#/login';
          return Promise.reject(err);
      case 400:
          Message.error('参数缺失或者错误');
        return Promise.reject(err);
      case 405:
          console.log('不支持的方法');
          break;
      // case ...
      default:
          console.log('其他错误');
          break
    }
  }
  // 注意这里应该return promise.reject(),
  // 因为如果直接return err则在调用此实例时，响应失败了也会进入then(res=>{})而不是reject或catch方法
  return Promise.reject(err)
});



export default axios_instance


